package com.lyz.dataStructure.algorithm.旷视科技2020;


import org.omg.PortableInterceptor.INACTIVE;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

/*
给定一个整数数组 nums 和一个目标值 target，
请你在该数组中找出和为目标值的那两个整数，并返回他们的数组下标。
 */
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        String s = sc.nextLine();
        String[] st = s.split(" ");
        int[] nums = new int[st.length];
        for(int i =0;i<nums.length;i++){
            nums[i] = Integer.parseInt(st[i]);
        }
        int k = sc.nextInt();
        int[] arr =twoSum(nums,k);
        for(int i =0;i<arr.length;i++){
            System.out.print(arr[i]+" ");
        }
    }

    public static int[] twoSum(int[] arr,int target){
        if(arr.length==0||arr==null){
            return null;
        }
        Map<Integer,Integer> map = new HashMap<>();

        for(int i =0;i<arr.length;i++){
            map.put(arr[i],i);
        }
            int[] result = new int[2];
        for(int i =0;i<arr.length;i++){
            int two = target-arr[i];
            if(map.containsKey(two)&& map.get(two) != i){
                result[0] = map.get(two);
                result[1] = i;
            }
        }
        return result;
    }
}
